One of the essential elements of active control of a computing system's health is designing and implementing an efficient preventive maintenance schedule. Any action that can be taken to avoid a system failure is considered preventive maintenance. Examples of preventive maintenance include replacement of a failing hardware component, software rejuvenation to clear internal system states, database optimization (restructuring in distributed databases), and controlling environmental conditions in data centers.